High-speed computer network topologies, such as Local Area Networks (LAN) and Wide Area Network (WAN), demand increasing bandwidth and data throughput. Consequently, data traveling across high-speed computer networks may “bottleneck” once the data is received by a Network Interface Card (NIC) within a target computer system. In order to accommodate continued increases in LAN/WAN network bandwidth, bottlenecks within the network must be prevented.
One reason data may bottleneck in a NIC is because the network interfaces used in current NICs may be inefficient in the way in which they handle incoming data. For example, a prior art network interface handles incoming data by relying on a NIC software driver to retrieve data from a temporary receiving buffer and store the data into a protocol memory before storing the data to application memory. Network software applications may then access the data from the application memory. Such a network interface involves numerous intermediate copying operations that take time and may cause network throughput to bottleneck.